const ajaxUtil = require("../../ajaxUtil/request")
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // tab栏 激活项
    target: "overall",
    // tab 栏数据
    tabs: [{
        text: "综合",
        target: "overall"
      },
      {
        text: "销量",
        target: "sale"
      },
      {
        text: "价格",
        target: "price"
      }
    ],
    // 商品列表
    goods: []
  },
  query: "",
  cid: "",
  pagenum: 1,
  pagesize: 20,
  total: 0,
  // 接收子组件传过来的激活项数据，进行数据更新
  handleTab: function (e) {
    this.setData({
      target: e.detail
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    let params = {}
    if (options.query) {
      params.query = options.query
      this.query = options.query
    }
    if (options.cid) {
      params.cid = options.cid
      this.cid = options.cid
    }
    params.pagesize = this.pagesize
    params.pagenum = this.pagenum
    let res = await ajaxUtil.request({
      url: "/public/v1/goods/search",
      data: {
        ...params
      }
    })
    this.pagenum = res.message.pagenum
    this.total = res.message.total
    this.pagesize = 20
    this.setData({
      goods: res.message.goods
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },
  // 发请求拿数据
  getGoodsList: async function () {
    let params = {}
    if (this.query) {
      params.query = this.query
    }
    if (this.cid) {
      params.cid = this.cid
    }
    params.pagesize = this.pagesize
    params.pagenum = 1
    let res = await ajaxUtil.request({
      url: "/public/v1/goods/search",
      data: {
        ...params
      }
    })
    this.pagenum = res.message.pagenum
    this.total = res.message.total
    // console.log(res);
    this.setData({
      goods: res.message.goods
    })
  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    // 下拉时清空原有数据，重新发请求拿数据
    this.setData({
      goods: []
    })
    // 发请求拿数据
    this.getGoodsList()
    // 停止下拉
    wx.stopPullDownRefresh()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom:async function () {
    // 判断是否还有下一页，没有则提示，有则加载
    if (parseInt(this.pagenum) + 1 <= Math.ceil(this.total / this.pagesize)) {
      let params = {}
      if (this.query) {
        params.query=this.query
      }
      if (this.cid) {
        params.cid=this.cid
      }
      params.pagenum=parseInt(this.pagenum) + 1
      let res = await ajaxUtil.request({
        url: "/public/v1/goods/search",
        data: {
          ...params
        }
      })
      console.log(res);
      this.pagenum=res.message.pagenum
      this.setData({
        // goods 是数组而不是对象
        goods: [
          ...this.data.goods,
          ...res.message.goods
        ]
      })
    } else {
      wx.showToast({
        title: '已经到最后一页了',
      })
    }

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})